package com.qq.client.tools;

/*
这是客户端和服务器保存通讯的线程
意思就是，上来一个客户端与服务器连接，
就让客户端开一个线程来与服务端连接，
*/
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;

import com.qq.client.view.QqChat;
import com.qq.client.view.QqfriendList;
import com.qq.common.Massage;
import com.qq.common.MessageType;

public class ClientConServerThread extends Thread{
       private Socket s;
       //构造函数
       public ClientConServerThread(Socket s){
    	   this.s=s;
       }
       public void run(){
    	   while(true){
    		   //不停的读取从服务端发来的信息。
    		   ObjectInputStream ois;
			try {
				ois = new ObjectInputStream(s.getInputStream());
				Massage m=(Massage)ois.readObject();
				if(m.getMesType().equals(MessageType.message_comm_mes)){
				//如果返回的是普通包，那么我们就，执行如下代码。
				QqChat qqchat=ManagerQqChat.getQqchat(m.getGetter()+" "+m.getSender());
				qqchat.showMessage(m);
				}else if(m.getMesType().equals(MessageType.message_ret_onLinehaoyou)){
					String con=m.getCon();
					String friend[]=con.split(" ");
					String getter=m.getGetter();
					//修改相应的好友列表。
					QqfriendList qqfrirendlist=ManagerqqFrirendList.getQqfrirendList(getter);
					//更新好友列表。
					if(qqfrirendlist!=null){
					qqfrirendlist.updateFrirend(m);
				}
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
    	   }
       }
	public Socket getS() {
		return s;
	}
	public void setS(Socket s) {
		this.s = s;
	}
}
